package com.example;


import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.example.enums.Message;
import org.junit.jupiter.api.Test;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import java.sql.Types;


@SpringBootApplication(scanBasePackages = {"com.example.**"})
@EnableWebMvc
@MapperScan("com.example.dao")
public class Main {

    public static void main(String[] args) {
        // FastAutoGenerator.create("jdbc:mysql://8.148.23.238:35296/yuhuatai?useSSL=false&serverTimezone=UTC", "root", "}x{S4(^n5ZvJ&exJ")
        //         .globalConfig(builder -> {
        //             builder.author("Hello") // 设置作者
        //                     .outputDir("src\\main\\java"); // 输出目录
        //         })
        //         .dataSourceConfig(builder ->
        //                 builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
        //                     int typeCode = metaInfo.getJdbcType().TYPE_CODE;
        //                     if (typeCode == Types.SMALLINT) {
        //                         // 自定义类型转换
        //                         return DbColumnType.INTEGER;
        //                     }
        //                     return typeRegistry.getColumnType(metaInfo);
        //                 })
        //         )
        //         .packageConfig(builder -> {
        //             builder.parent("com.example") // 设置父包名
        //                     .entity("model") // 设置实体类包名
        //                     .mapper("dao") // 设置 Mapper 接口包名
        //                     .service("service") // 设置 Service 接口包名
        //                     .serviceImpl("service.impl") // 设置 Service 实现类包名
        //                     .xml("mappers"); // 设置 Mapper XML 文件包名
        //         })
        //         .strategyConfig(builder -> {
        //             builder.addInclude("restaurant") // 设置需要生成的表名
        //                     .entityBuilder()
        //                     .enableLombok() // 启用 Lombok
        //                     .enableTableFieldAnnotation() // 启用字段注解
        //                     .controllerBuilder()
        //                     .enableRestStyle(); // 启用 REST 风格
        //         })
        //         .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
        //         .execute();
        SpringApplication.run(Main.class);

    }
}